A user interface (UI) is the means through which people interact with a machine, device, computer program or other complex tool, referred to generally as the “system”. The UI provides the capability of entering user input, corresponding to the way a user manipulates the system, and produces output, enabling the system to exhibit the effect of the user's manipulation. In computer science and human-computer interaction, input generally refers to control sequences such as keystrokes with a computer keyboard, movements of a computer mouse, and touch-screen selections. Output generally refers to graphical, textual and auditory information that the system presents to the user.
The electronic keyboard is the most common of all UI input devices. Physically, keyboards are arrangements of buttons, or keycaps. Keycaps generally have characters engraved or printed on them. Generally, a key press produces a single written symbol. Some symbols may require pressing and/or holding two or more keys simultaneously or in succession; and some keys do not produce a symbol, but instead affect operation of the system or of the keyboard itself.
Electronic keyboards are included in computer systems that range from personal computers and laptop computers, which have large keyboards, to mobile computers, which have small keyboards. Large keyboards can accommodate many keys that are large enough to be easily pressed by fingers. Small keyboards use reduced size keys, or a reduced number of keys, or closer packing of keys, to meet the size constraints of the keyboards.
Another type of electronic keyboard in use today is the virtual laser keyboard. The laser keyboard uses a projector to project an image of a full size keyboard into a surface. Sensors in the projector identify key presses, and relay corresponding signals to the system.
Electronic keyboards are modeled in part after the typewriter. There are several keyboard symbol layouts in use today. Different keyboard layouts arise when people require easy access to different sets of symbols. Such layouts include layouts for different languages, and specialized layouts for calculators, for accounting applications and for computer programming.
Keyboards generally include between 80 and 110 keys, including typing keys, numeric keypad, function keys and control keys.
Reference is now made to FIG. 1, which is a prior art diagram of a QWERTY keyboard 100. The QWERTY keyboard was designed for mechanical typewriters, and is named for the first six letter keys in its layout. Letters were attached to freely-moving levers, and jamming would result if commonly-used letters were positioned too close to one another. With the advent of modern electronics, jamming of levers is no longer an issue. Nevertheless, QWERTY keyboards had been a de facto standard for decades prior to the advent of electronic keyboards, and the QWERTY layout was adopted for electronic keyboards because of its familiarity.
Reference is now made to FIG. 2, which is a prior art diagram of a DVORAK keyboard 200. The DVORAK keyboard layout positions vowels on the left side of the keyboard and the most common consonants on the right side. Most commonly user letters are positioned along the home row, which is the main row where the fingers are placed when one begins typing. The DVORAK keyboard was patented by A. Dvorak et al. in U.S. Pat. No. 2,040,248, as an alternative to the QWERTY keyboard. It is not in widespread use today. Other keyboard layouts include ABCDE, XPeRT, QWERTZ and AZERTY, each named for the first letters in its layout.
An electronic keyboard generally has its own processor, and circuitry that conveys information to and from the processor. A large portion of the circuitry comprises a keyboard matrix. A keyboard matrix is a grid of circuits beneath the keys. In most keyboards, with the exception of capacitive models described below, a circuit is broken at a point below each key. When a key is depressed, the key presses upon a switch, thereby completing a broken circuit and allowing a small amount of current to flow through. The mechanical action of the switch causes some vibration, referred to as “bounce”, which the processor filters out. When a key is pressed and held down, the processor recognizes this as the equivalent of repeated key presses.
When the processor finds that a circuit is closed, the processor maps the location of the closed circuitry within the keyboard matrix to a character, using a character map stored in read-only memory. A character map is a look-up table, which informs the processor of the position of each key in the keyboard matrix, and what each keystroke or combination of keystrokes represents. E.g., the character map informs the processor that pressing the “a” key by itself corresponds to a lower case “a”, and the pressing the “shift” key and the “a” key together corresponds to an upper case “A”.
Reference is now made to FIG. 3, which is a prior art diagram of a keyboard matrix. The keyboard matrix of FIG. 3 is organized as a matrix of push buttons, connected with row and column wires. For purposes of clarification, FIG. 3 shows only a 3×3 keyboard matrix. A key press connects the key's row wire with the key's column wire. E.g., when the “a” key is pressed, column wire C1 is connected to row wire R1.
Keyboard matrices may be scanned in several ways. U.S. Pat. No. 4,725,816 to Petterson describes a keyboard scanner that detects which key of a keyboard matrix is pressed. When a key is pressed, a unique DC voltage is generated. An analog-to-digital convertor converts the voltage to a digital signal, which is analyzed to identify the key. Ambiguity is avoided by choosing resistors which, when coupled together with a current source, generate unique voltages.
Reference is now made to FIG. 4, which is a prior art diagram of a circuit 400 for a keyboard matrix that encodes key presses by means of voltages. Shown in FIG. 4 are individual keys 410a, 410b, . . . , 410i. The bottoms of the keys have respective metal strips 420a, 420b, . . . , 420i. When a key is pressed, its metal strip is depressed, and the strip comes in contact with two terminals and closes a branch of circuit 400. Thus metal strips 420a, 420b, . . . , 420i serve as open switches that close when their keys are pressed.
When only single keys are pressed, a fast scanning method for circuit 400 is to first select all row lines and read the column results, and then select all column lines and read the row results. The returned row and column results are encoded into a unique scan-code for the specific key pressed. When multiple keys may be pressed simultaneously, the row lines are scanned separately in sequence, reading the column result for each row, in order to determine all keys that are pressed.
In various situations it is of great advantage to customize an electronic keyboard. For example, operating systems must customize keyboards that support multiple languages. Such multi-lingual keyboards generally have two symbols engraved or printed on each keycap, which enable a user to know which symbol is processed when the keyboard is used in each of the languages. Electronic keyboards may be customized (i) by customizing the functions that keys activate, and (ii) by customizing the layout of the keys within the keyboard matrix.
Customizing the functions that keys activate involves using custom character maps, overriding the default character map for the keyboard, so that the processor interprets key presses differently. Customizing key functions is useful for typing in a language that uses letters without English equivalents, on an English keyboard. Customizing key functions is also useful for accessibility settings that change keyboard behavior to adapt to disabilities. Customizing key functions may be used, for example, to convert a QWERTY keyboard to a DVORAK keyboard.
For systems such as GNU/Linux, which run on an X11 operating system, customization of key functions may be performed using xmodmap. For Windows systems, software is available for customization of key functions, such as KeyTweak developed by Travis Krumsick, Keyboard Layout Manager developed by M. Vidakovic and I. Milijasevic of the Slovak Republic, Keyboard Layout Creator developed by Microsoft Corporation of Redmond, Wash., and KbdEdit developed by Ivica Nikolic of Dublin, Ireland.
Customizing the layout of the keys involves changing locations of keys. The DX1 Input System, developed by Ergodex, Inc. of Mountain View, Calif., includes 25 numbered keys that can be rearranged at will.
Another approach to customizing the layout of the keys is illustrated in FIG. 5, which is a prior art diagram of a keyboard having a customizable layout by means of small touch screens on each key. The keyboard shown in FIG. 5 is an Optimus Maximus keyboard developed by Art Lebedev Design Studios. The Optimus Maximus keyboard is a full-size 113-key keyboard with color organic light-emitting diodes (OLEDs) on each key. Each key of the Optimus Maximus keyboard has a touch screen of dimensions 10.1 mm×10.1 mm and of 48×48 pixel resolution, which enable customizing the display, and thus the virtual location and function, of each key.
It will thus be appreciated by those skilled in the art that customization of electronic keyboards is complicated and requires character re-mapping software which assigns new identities to original keys. Moreover, when keys are re-mapped to new identities, the appearances of the keys are generally not altered, which makes it difficult for a user to know what the new identities of the keys are. The identity of a key depends on its position within the keyboard matrix.
There is thus a need for keyboards that are simple to customize, without requiring character re-mapping.